package com.charmzenus.message.redis;


import java.util.List;
import java.util.Set;

public interface IRedisService {
    /**
     * 添加
     *
     * @param key    key
     * @param expire 过期时间(单位:秒),传入 -1 时表示不设置过期时间
     */
    public void put(String hashKey, String key, String values, long expire);

    public void putObj(String hashKey, String key, Object values, long expire);

    public void setKeyValue(String key, Object values, long expire);

    /**
     * 删除
     *
     * @param key 传入key的名称
     */
    public void remove(String hashKey, String key);

    public void remove(String key);

    /**
     * 查询
     *
     * @param key 查询的key
     * @return
     */
    public String get(String hashKey, String key);

    public Object getObj(String hashKey, String key);

    public Object getKeyValue(String key);

    /**
     * 获取当前redis库下所有对象
     *
     * @return
     */
    public List<String> getAll(String hashKey);

    /**
     * 查询查询当前redis库下所有key
     *
     * @return
     */
    public Set<String> getKeys(String hashKey);

    /**
     * 判断key是否存在redis中
     *
     * @param key 传入key的名称
     * @return
     */
    public boolean isKeyExists(String hashKey, String key);

    /**
     * 查询当前key下缓存数量
     *
     * @return
     */
    public long count(String hashKey);

    /**
     * 清空redis
     */
    public void empty(String hashKey);
}